﻿using System;
using System.Collections.Generic;
using ConcreteMappersAndObjects.DomainObjects;
using ExaminationTT.Model;
namespace ExaminationTT.Rule
{
    public enum ConflictWeight
    {
        Minimal = 0, Medium=1, Serious=2, Critical=3, Impossible=4
    }
    public interface IRule
    {
        IConflict EnforceRule(IExam exam1, IExam exam2);
        string Name { get; }
    }
    public interface IConflict
    {
        IEnumerable<IExam> Exams { get; }
        string ConflictType { get; }
        string ConflitcInfo { get; }
        string RuleName { get; }
        ConflictWeight Weight { get; }
        IEnumerable<IStudent> AffectedStudents { get; }
        int AffectedStudentsCount { get; }
    }
}
